package com.csi.controller.user;

import com.alibaba.druid.util.StringUtils;
import com.alibaba.fastjson2.JSON;
import com.csi.pojo.Result;
import com.csi.service.UserService;
import com.csi.service.impl.UserServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/user/updatePayPasswordController")
public class UpdatePayPasswordController extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        resp.setContentType("application/json;charset=utf-8");
        PrintWriter out = resp.getWriter();

        // 获取请求参数
        String userNumber = req.getParameter("userNumber");
        String newPayPassword = req.getParameter("newPayPassword");
        String confirmPayPassword = req.getParameter("confirmPayPassword");

        // 参数校验
        if (StringUtils.isEmpty(userNumber) || StringUtils.isEmpty(newPayPassword) || StringUtils.isEmpty(confirmPayPassword)) {
            Result result = new Result<>();
            result.setCode(400);
            result.setMsg("请求参数不能为空");
            out.print(JSON.toJSONString(result));
            out.flush();
            out.close();
            return;
        }

        if (!newPayPassword.equals(confirmPayPassword)) {
            Result result = new Result<>();
            result.setCode(7001);
            result.setMsg("两次输入的密码不一致");
            out.print(JSON.toJSONString(result));
            out.flush();
            out.close();
            return;
        }

        UserService userService = new UserServiceImpl();

        try {
            // 更新支付密码
            userService.updatePayPassword(userNumber, newPayPassword);

            Result result = new Result<>();
            result.setCode(200);
            result.setMsg("更新成功");
            out.print(JSON.toJSONString(result));
        } catch (Exception e) {
            Result result = new Result<>();
            result.setCode(500);
            result.setMsg("服务器内部错误");
            out.print(JSON.toJSONString(result));
            e.printStackTrace();
        } finally {
            out.flush();
            out.close();
        }
    }
}
